package com.info.zhiduoduo.repository.dto.crowdsource;

import com.info.zhiduoduo.repository.dto.quota.CompanyQuotaDto;
import com.info.zhiduoduo.repository.dto.quota.MakerQuotaDto;
import com.info.zhiduoduo.repository.dto.quota.ZhiduoduoCityQuotaDto;

import java.math.BigDecimal;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class CrowdsourceItemAmountCalcResult {

	/** 计算的项目金额类型, 取值于 {@link com.info.zhiduoduo.common.constants.project.CalcAmountType} */
	private int calcAmountType;
	@ApiModelProperty(" 项目、众包项目、委托接单项目、创客团项目等的大项目id")
	private Integer projectId;
	@ApiModelProperty("众包项目、委托接单项目、创客团项目等的子项目id")
	private Integer projectItemId;
	@ApiModelProperty("项目类型, 参考ProjectType")
	private Integer projectType;
	private int userid;
	@ApiModelProperty("工作室名称")
	private String username;
	@ApiModelProperty("姓名")
	private String realname;
	/** 用户类型 1:自然人 2:工作室 */
	@ApiModelProperty("用户类型 1:自然人 2:工作室")
	private int userType;
	/** 单笔项目款 */
	@ApiModelProperty("单笔项目款")
	private BigDecimal projectAmount;

	@ApiModelProperty("单个项目多笔创客时的总项目款")
	private BigDecimal makerProjectAmount;
	/** 项目税费(已废弃:项目服务费) */
	@ApiModelProperty("项目税费(已废弃:项目服务费)")
	private BigDecimal projectServiceCharge;
	/** 费率 */
	@ApiModelProperty("费率")
	private double taxRate;
	/** 合伙人佣金 */
	@ApiModelProperty("合伙人佣金")
	private BigDecimal partnerBrokerage;
	/** 综合费用（已包含了项目金额、服务费、合伙人佣金和税费），就是应付金额 */
	@ApiModelProperty("综合费用（已包含了项目金额、服务费、合伙人佣金和税费, 不含保证金），就是应付金额")
	private BigDecimal integratedTaxFee;
	/** 月度总综合费用（含当前项目金额),如果是创客工作室,则包含了 项目的金额 */
	@ApiModelProperty("月度总综合费用（含当前项目金额）")
	private BigDecimal monthlyTotalProjectAmount;
	/** 月度总综合费用（含当前项目金额),如果是创客工作室,则包含了 项目的金额 */
	@ApiModelProperty("季度总综合费用（含当前项目金额）")
	private BigDecimal quarterlyTotalProjectAmount;
	/** 年度总综合费用（含当前项目金额）,如果是创客工作室,则包含了 项目的金额 */
	@ApiModelProperty("年度总综合费用（含当前项目金额）")
	private BigDecimal yearlyTotalProjectAmount;
	/** 当前税率下单笔项目最大项目金额(加上服务费和税费后不能超过单笔限额5万) */
	@ApiModelProperty("当前税率下单笔项目最大项目金额(加上服务费和税费后不能超过单笔限额5万)")
	private BigDecimal maxProjectAmount;

	/**
	 * 保证金总额=单笔项目金额*保证金比例
	 */
	@ApiModelProperty("保证金金额")
	private BigDecimal depositAmount;

	/** 当前创客或自然人的单次限额 */
	@ApiModelProperty("当前创客或自然人的单次限额")
	private BigDecimal singleQuota;
	/** 当前创客或自然人的月度限额 */
	@ApiModelProperty("当前创客或自然人的月度限额")
	private BigDecimal monthlyQuota;
	/** 当前创客或自然人的季度限额 */
	@ApiModelProperty("当前创客或自然人的季度限额")
	private BigDecimal quarterlyQuota;
	/** 当前创客或自然人的年度限额 */
	@ApiModelProperty("当前创客或自然人的年度限额")
	private BigDecimal yearlyQuota;

	@ApiModelProperty("当前用户身份证下(创客+自然人)的年度交易额")
	private BigDecimal userIdnoYearAmout;
	@ApiModelProperty("当前用户身份证下(创客+自然人)的连续12个月交易额")
	private BigDecimal userIdnoTwelveMonthAmout;

	@ApiModelProperty("单笔项目是否超过限额")
	private boolean singleExceed;
	@ApiModelProperty("月度总综合费用是否已经超过限额")
	private boolean monthlyExceed;
	@ApiModelProperty("季度总综合费用是否已经超过限额")
	private boolean quarterlyExceed;
	@ApiModelProperty("年度综合费用是否已经超过限额")
	private boolean yearlyExceed;

	// 企业、创客、城市限额
	@ApiModelProperty("企业限额")
	CompanyQuotaDto companyQuota;
	@ApiModelProperty("创客限额")
	MakerQuotaDto makerQuota;
	@ApiModelProperty("创客所在城市的限额")
	ZhiduoduoCityQuotaDto cityQuota;
	@ApiModelProperty("超过的类型：0：无 1:系统 2：企业 3：创客 4：注册地 5：个人所有业务(相同身份证下的创客+自然人) ")
	private int makerExceedType;
	@ApiModelProperty("超过的时间周期：0：无 1：过去12个月 2：年 3：季度 4：月 5：单笔")
	private int makerExceedPeriod;
	@ApiModelProperty("超限额提示")
	private String exceedTip;
}
